import { getUID } from './utils/permission'
import './utils/fixlodash'

// app.js
App({
  onLaunch() {
    // 展示本地存储能力
    const logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    // 登录
    wx.login({
      success: (res) => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      }
    })
  },
  globalData: {
    userInfo: null
  },
  /**
   * 获取用户信息
   * @return {Promise}
   */
  getUserInfo: function () {
    let uid = getUID()
    if (!uid) {
      return Promise.reject(new Error('未登录'))
    }
    // 已经有用户信息时直接返回
    if (USER_INFO.id) {
      return Promise.resolve(USER_INFO)
    }
    return getUserInfoById(uid).then((res) => {
      this.setUserInfo(res.data)
      return res.data
    })
  },

  /**
   * 设置用户信息
   * @event <userInfoChanged> 在个人信息页(personal-information)被监听
   */
  setUserInfo: function (userInfo) {
    USER_INFO = Object.assign({}, USER_INFO, userInfo)
    // this.event.emit('userInfoChanged', { userInfo: userInfo })
  }
})

/**
 * 用户完整信息，只能通过getter和setter访问和修改
 */
var USER_INFO = {
  id: null, // 用户id
  member_id: null, // 账户中心id
  agency_id: null, // 代理人机构id
  parent_id: null, // 上级代理人id
  role_id: null, // 角色id：1~12 管理员、代理人、审核员、流程、用户、审核员代理人、子管理员、推广人员、机构、估价员、财务、视频制作
  openid: '', // openid
  show_badge: '', // 显示的徽章
  img: '', // 图像
  img_thumb: '', // 图像缩略图
  level: null, // 等级：1~3 菜鸟、新手、大神
  grade: null, // 等级：1~3 初级、中级、高级
  first_login: false, // 是否首次登录
  vip: null, // vip 等级
  is_special_vip: false, // 是否特殊vip
  accumulate_points: null, // 累计积分
  history_points: null, // 历史积分
  vip_pay_time: null, // vip支付时间
  vip_pay_expire: null, // vip购买时常，以月为单位
  systemName: '', // 系统名称，不可修改
  smsRemindCount: 0, // 案件交流短信提醒使用次数
  referral_code: '', // 平台推荐人推荐码
  is_teacher: null, // 是否是老师：1~3 是 否 未确定
  trial_free: null, // 是否有免审资格：1~2 是 否
  graduate: null, // 出师人id
  phone: '', // 手机号
  status: '', // 账号状态
  type: '', // 代理人类型
  nickname: '', // 昵称
  name: '', // 真实姓名
  last_login_time: '', // 最后登录时间
  created_at: '', // 创建时间
  updated_at: '', // 更新时间
  leaved_at: '', // 离职时间
  coin: 0, // 余额
  channel_pid: null, // 渠道id
  address: '', // 地址
  postcode: '', // 邮编
  // 老师
  teacher: {
    id: null // 老师id
  },
  // 角色
  role: {
    id: null, // 角色id：1~12 管理员、代理人、审核员、流程、用户、审核员代理人、子管理员、推广人员、机构、估价员、财务、视频制作
    name: ''
  }
}
